<?php

class Application_Model_MMRProyectos extends Sgit_Model
{  
    protected $_name = 'proyectos_circuitos';
    protected $_primary = 'id';



    public function getProyectos($values)
    {
        
        
        //permite pasar unico parametro id del contador
        if(is_numeric($values)){
            $id=$values;unset($values);$values['id']=$id;unset($id);
        } 
      
        $subselect=$this->getAdapter()
            ->select()
            ->from(array('posicion_intervenciones'),array(new Zend_Db_Expr('count(*)')))
            ->joinLeft(array('pos'=>'posicion'), "pos.id = posicion_intervenciones.id_circuito",array(''))
            ->where('pos.id_proyecto = proyectos_circuitos.id');


        $select=$this->getAdapter()
            ->select()
            ->from(array($this->_name),array('*','intervenciones'=>new Zend_Db_Expr("($subselect)")));
           
         $select->joinLeft('pep', "pep.id = {$this->_name}.id_pep", array('pep','id_jp'));
       
          
           
        if (is_array($values['id']) || is_numeric($values['id']))
            $select->where("{$this->_name}.id IN (?)", $values['id']);


        if(is_numeric($values['id_pep']))
            $select->where('id_pep= ?', $values['id_pep']);
        if(is_numeric($values['id_zona']))
            $select->where('id_zona= ?', $values['id_zona']);    
        
        $select->order('id_zona');
        

        $rows = $this->getAdapter()->fetchAll($select);
        
     
        
        foreach($rows as $v){
            $id_proyectos[]=$v['id'];
        }


  
        $m_posiciones= new Application_Model_Posicion();
        
        $posiciones=$m_posiciones->getPosicionesGroupProyectoTipo($id_proyectos);
        $posiciones=$m_posiciones->assocArray($posiciones,'id_proyecto');
        
        $posiciones_libres=$m_posiciones->getPosicionesGroupProyectoTipo($id_proyectos,true);
        $posiciones_libres=$m_posiciones->assocArray($posiciones_libres,'id_proyecto');
        
       
            
      
       

        foreach($rows as &$v){
            
            foreach($posiciones[$v['id']] as $g){
                $v['posicion_total']+=$g['c'];
            }
            foreach($posiciones_libres[$v['id']] as $g){
                $v['posicion_total_libre']+=$g['c'];
            }
            
            $v['posicion']=$m_posiciones->assocArray2($posiciones[$v['id']],'tipo');
          
            $v['posicion_libre']=$m_posiciones->assocArray2($posiciones_libres[$v['id']],'tipo');
        }



        if (is_numeric($values['id']))
            return $rows[0];
        else
            return $rows;

    }

}  


